unit valida;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Menus;

type
  TValidador = class(TForm)
    MainMenu1: TMainMenu;
    ValidarCPF1: TMenuItem;
    ListBox1: TListBox;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Edit5: TEdit;
    Edit7: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Validar1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ValidarCPF1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Validador: TValidador;
  cpf: string[11];
  cnpj: string [14];
  v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v20,v21,vv,v12,v13,v14,v40,v41,valor,digitocpf,digitocnpj,numerocpf,numerocnpj,comparacaocpf,comparacaocnpj,valor1,numero,numero1,numero2,numeromodificado,nun:string;
  i,x,y,c,soma,divisao,resto,soma2,divisao2,resto2,digitos,digito: integer;
  v:array[1..11] of string;
  cn: array[1..14] of string;
implementation


{$R *.DFM}

procedure TValidador.Validar1Click(Sender: TObject);
begin
{v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
if (edit3.Text <> '') and (length(edit3.text)=9) then
begin
cpf:= edit3.text;

        for i:= 1 to 9 do
        begin
        v[i]:= cpf[i];
        end;
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;

        v1:= inttostr(strtoint(v1)*10);
        v2:= inttostr(strtoint(v2)*9);
        v3:= inttostr(strtoint(v3)*8);
        v4:= inttostr(strtoint(v4)*7);
        v5:= inttostr(strtoint(v5)*6);
        v6:= inttostr(strtoint(v6)*5);
        v7:= inttostr(strtoint(v7)*4);
        v8:= inttostr(strtoint(v8)*3);
        v9:= inttostr(strtoint(v9)*2);
        soma:= 0;
        divisao:= 0;
        resto:=0;
        soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9);
        resto:= soma mod 11;
        if (resto <2) then
        begin
        v20 := '0';
        end;
        if resto>=2 then
        begin
        divisao:= 11-resto;
        v20:= inttostr(divisao);
        end;

        v1:= '';
        v2:= '';
        v3:= '';
        v4:= '';
        v5:= '';
        v6:= '';
        v7:= '';
        v8:= '';
        v9:= '';
        vv:= '';
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;
        v1:= inttostr(strtoint(v1)*11);
        v2:= inttostr(strtoint(v2)*10);
        v3:= inttostr(strtoint(v3)*9);
        v4:= inttostr(strtoint(v4)*8);
        v5:= inttostr(strtoint(v5)*7);
        v6:= inttostr(strtoint(v6)*6);
        v7:= inttostr(strtoint(v7)*5);
        v8:= inttostr(strtoint(v8)*4);
        v9:= inttostr(strtoint(v9)*3);
        vv:= inttostr(strtoint(v20)*2);
        soma2:= 0;
        divisao2:= 0;
        resto2:=0;
        soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(vv);
        resto2:= soma2 mod 11;
        if (resto2 <2) then
        begin
        v21 := '0';
        end;
        if resto2>=2 then
        begin
        divisao2:= 11-resto2;
        v21:= inttostr(divisao2);
        end;
        edit3.Text:='';
        edit3.Text:= cpf+v20+v21;
        edit3.SetFocus;
        edit3.SelectAll;
        edit3.CopyToClipboard;
end;

v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';

v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
v12:= '';
v13:= '';
v14:= '';
vv:= '';
if (edit4.Text <> '') and (length(edit4.text)=12)  then
begin
cnpj:= edit4.text;

for i:= 1 to 12 do
begin
cn[i]:= cnpj[i];
end;
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;

v1:= inttostr(strtoint(v1)*5);
v2:= inttostr(strtoint(v2)*4);
v3:= inttostr(strtoint(v3)*3);
v4:= inttostr(strtoint(v4)*2);
v5:= inttostr(strtoint(v5)*9);
v6:= inttostr(strtoint(v6)*8);
v7:= inttostr(strtoint(v7)*7);
v8:= inttostr(strtoint(v8)*6);
v9:= inttostr(strtoint(v9)*5);
v10:= inttostr(strtoint(v10)*4);
v11:= inttostr(strtoint(v11)*3);
v12:= inttostr(strtoint(v12)*2);
soma:= 0;
divisao:= 0;
resto:=0;
soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12);
resto:= soma mod 11;
if (resto <2) then
begin
v20 := '0';
end;
if resto>=2 then
begin
divisao:= 11-resto;
v20:= inttostr(divisao);
end;
v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
v12:= '';
vv:= '';
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;
v1:= inttostr(strtoint(v1)*6);
v2:= inttostr(strtoint(v2)*5);
v3:= inttostr(strtoint(v3)*4);
v4:= inttostr(strtoint(v4)*3);
v5:= inttostr(strtoint(v5)*2);
v6:= inttostr(strtoint(v6)*9);
v7:= inttostr(strtoint(v7)*8);
v8:= inttostr(strtoint(v8)*7);
v9:= inttostr(strtoint(v9)*6);
v10:= inttostr(strtoint(v10)*5);
v11:= inttostr(strtoint(v11)*4);
v12:= inttostr(strtoint(v12)*3);
vv:= inttostr(strtoint(v20)*2);
soma2:= 0;
divisao2:= 0;
resto2:=0;
soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12)+strtoint(vv);
resto2:= soma2 mod 11;
if (resto2 <2) then
begin
v21 := '0';
end;
if resto2>=2 then
begin
divisao2:= 11-resto2;
v21:= inttostr(divisao2);
end;
edit4.Text:='';
edit4.Text:= cnpj+v20+v21;
edit4.SetFocus;
edit4.SelectAll;
edit4.CopyToClipboard;
end;   }
end;

procedure TValidador.BitBtn1Click(Sender: TObject);
begin
numero:= '';
digitocpf:= '';
digitocnpj:= '';
cpf:= '';
cnpj:= '';
listbox1.Clear;
cpf:= edit1.Text;
cnpj:= edit5.Text;
if edit1.Text <> '' then
begin
digitocpf:= cpf[10] + cpf[11];
end;
if edit5.Text <> '' then
begin
digitocnpj:= cnpj[13] + cnpj[14];
end;
cpf:= '';
cnpj:= '';

v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
if (edit1.Text <> '') then
begin
cpf:= edit1.text;

        for i:= 1 to 9 do
        begin
        v[i]:= cpf[i];
        end;
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;

        v1:= inttostr(strtoint(v1)*10);
        v2:= inttostr(strtoint(v2)*9);
        v3:= inttostr(strtoint(v3)*8);
        v4:= inttostr(strtoint(v4)*7);
        v5:= inttostr(strtoint(v5)*6);
        v6:= inttostr(strtoint(v6)*5);
        v7:= inttostr(strtoint(v7)*4);
        v8:= inttostr(strtoint(v8)*3);
        v9:= inttostr(strtoint(v9)*2);
        soma:= 0;
        divisao:= 0;
        resto:=0;
        soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9);
        resto:= soma mod 11;
        if (resto <2) then
        begin
        v20 := '0';
        end;
        if resto>=2 then
        begin
        divisao:= 11-resto;
        v20:= inttostr(divisao);
        end;

        v1:= '';
        v2:= '';
        v3:= '';
        v4:= '';
        v5:= '';
        v6:= '';
        v7:= '';
        v8:= '';
        v9:= '';
        vv:= '';
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;
        v1:= inttostr(strtoint(v1)*11);
        v2:= inttostr(strtoint(v2)*10);
        v3:= inttostr(strtoint(v3)*9);
        v4:= inttostr(strtoint(v4)*8);
        v5:= inttostr(strtoint(v5)*7);
        v6:= inttostr(strtoint(v6)*6);
        v7:= inttostr(strtoint(v7)*5);
        v8:= inttostr(strtoint(v8)*4);
        v9:= inttostr(strtoint(v9)*3);
        vv:= inttostr(strtoint(v20)*2);
        soma2:= 0;
        divisao2:= 0;
        resto2:=0;
        soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(vv);
        resto2:= soma2 mod 11;
        if (resto2 <2) then
        begin
        v21 := '0';
        end;
        if resto2>=2 then
        begin
        divisao2:= 11-resto2;
        v21:= inttostr(divisao2);
        end;
        comparacaocpf:= v20+v21;

end;

v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';

v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
v12:= '';
v13:= '';
v14:= '';
vv:= '';
if (edit5.Text <> '') then
begin
cnpj:= edit5.text;

for i:= 1 to 12 do
begin
cn[i]:= cnpj[i];
end;
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;

v1:= inttostr(strtoint(v1)*5);
v2:= inttostr(strtoint(v2)*4);
v3:= inttostr(strtoint(v3)*3);
v4:= inttostr(strtoint(v4)*2);
v5:= inttostr(strtoint(v5)*9);
v6:= inttostr(strtoint(v6)*8);
v7:= inttostr(strtoint(v7)*7);
v8:= inttostr(strtoint(v8)*6);
v9:= inttostr(strtoint(v9)*5);
v10:= inttostr(strtoint(v10)*4);
v11:= inttostr(strtoint(v11)*3);
v12:= inttostr(strtoint(v12)*2);
soma:= 0;
divisao:= 0;
resto:=0;
soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12);
resto:= soma mod 11;
if (resto <2) then
begin
v40 := '0';
end;
if resto>=2 then
begin
divisao:= 11-resto;
v40:= inttostr(divisao);
end;
v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
v12:= '';
vv:= '';
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;
v1:= inttostr(strtoint(v1)*6);
v2:= inttostr(strtoint(v2)*5);
v3:= inttostr(strtoint(v3)*4);
v4:= inttostr(strtoint(v4)*3);
v5:= inttostr(strtoint(v5)*2);
v6:= inttostr(strtoint(v6)*9);
v7:= inttostr(strtoint(v7)*8);
v8:= inttostr(strtoint(v8)*7);
v9:= inttostr(strtoint(v9)*6);
v10:= inttostr(strtoint(v10)*5);
v11:= inttostr(strtoint(v11)*4);
v12:= inttostr(strtoint(v12)*3);
vv:= inttostr(strtoint(v40)*2);
soma2:= 0;
divisao2:= 0;
resto2:=0;
soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12)+strtoint(vv);
resto2:= soma2 mod 11;
if (resto2 <2) then
begin
v41 := '0';
end;
if resto2>=2 then
begin
divisao2:= 11-resto2;
v41:= inttostr(divisao2);
end;
comparacaocnpj:= v40+v41;
end;












if ((comparacaocpf <> digitocpf) ) or ((comparacaocnpj <> digitocnpj)) then
begin
listbox1.Clear;

if (edit1.Text <> '') then
begin

for x:= 1 to 9 do
begin
numero:= '';
numero:= edit1.Text;

for y := 0 to 9 do
begin
if y = 0 then
begin
numero[x]:= '0';
end;
if y = 1 then
begin
numero[x]:= '1';
end;
if y = 2 then
begin
numero[x]:= '2';
end;
if y = 3 then
begin
numero[x]:= '3';
end;
if y = 4 then
begin
numero[x]:= '4';
end;
if y = 5 then
begin
numero[x]:= '5';
end;
if y = 6 then
begin
numero[x]:= '6';
end;
if y = 7 then
begin
numero[x]:= '7';
end;
if y = 8 then
begin
numero[x]:= '8';
end;
if y = 9 then
begin
numero[x]:= '9';
end;
v20:= '';
v21:= '';
cpf:= numero;

        for i:= 1 to 9 do
        begin
        v[i]:= cpf[i];
        end;
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;

        v1:= inttostr(strtoint(v1)*10);
        v2:= inttostr(strtoint(v2)*9);
        v3:= inttostr(strtoint(v3)*8);
        v4:= inttostr(strtoint(v4)*7);
        v5:= inttostr(strtoint(v5)*6);
        v6:= inttostr(strtoint(v6)*5);
        v7:= inttostr(strtoint(v7)*4);
        v8:= inttostr(strtoint(v8)*3);
        v9:= inttostr(strtoint(v9)*2);
        soma:= 0;
        divisao:= 0;
        resto:=0;
        soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9);
        resto:= soma mod 11;
        if (resto <2) then
        begin
        v20 := '0';
        end;
        if resto>=2 then
        begin
        divisao:= 11-resto;
        v20:= inttostr(divisao);
        end;

        v1:= '';
        v2:= '';
        v3:= '';
        v4:= '';
        v5:= '';
        v6:= '';
        v7:= '';
        v8:= '';
        v9:= '';
        vv:= '';
        for i:=1 to 1 do
        begin
        v1:= v[i];
        v2:= v[i+1];
        v3:= v[i+2];
        v4:= v[i+3];
        v5:= v[i+4];
        v6:= v[i+5];
        v7:= v[i+6];
        v8:= v[i+7];
        v9:= v[i+8];
        end;
        v1:= inttostr(strtoint(v1)*11);
        v2:= inttostr(strtoint(v2)*10);
        v3:= inttostr(strtoint(v3)*9);
        v4:= inttostr(strtoint(v4)*8);
        v5:= inttostr(strtoint(v5)*7);
        v6:= inttostr(strtoint(v6)*6);
        v7:= inttostr(strtoint(v7)*5);
        v8:= inttostr(strtoint(v8)*4);
        v9:= inttostr(strtoint(v9)*3);
        vv:= inttostr(strtoint(v20)*2);
        soma2:= 0;
        divisao2:= 0;
        resto2:=0;
        soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(vv);
        resto2:= soma2 mod 11;
        if (resto2 <2) then
        begin
        v21 := '0';
        end;
        if resto2>=2 then
        begin
        divisao2:= 11-resto2;
        v21:= inttostr(divisao2);
        end;

      numero:= '';
      for c:= 1 to 9 do
      begin
      numero:= numero + cpf[c];
      end;



      if (digitocpf = (v20+v21)) or ((v20+v21) = comparacaocpf) then
      begin
      if numerocpf <> numero+v20+v21 then
      begin
      listbox1.Items.Add(numero+v20+v21);
      numerocpf:= '';
      if ((v20+v21) = comparacaocpf) then
      begin
      comparacaocpf:= '';
      end;
      numerocpf:= numero+v20+v21;
      end;
      end;

end;
end;
end;




if (edit5.Text <> '') then
begin

for x:= 1 to 12 do
begin
numero:= '';
numero:= edit5.Text;
for y := 0 to 9 do
begin
if y = 0 then
begin
numero[x]:= '0';
end;
if y = 1 then
begin
numero[x]:= '1';
end;
if y = 2 then
begin
numero[x]:= '2';
end;
if y = 3 then
begin
numero[x]:= '3';
end;
if y = 4 then
begin
numero[x]:= '4';
end;
if y = 5 then
begin
numero[x]:= '5';
end;
if y = 6 then
begin
numero[x]:= '6';
end;
if y = 7 then
begin
numero[x]:= '7';
end;
if y = 8 then
begin
numero[x]:= '8';
end;
if y = 9 then
begin
numero[x]:= '9';
end;

v40:= '';
v41:= '';

cnpj:= numero;

for i:= 1 to 12 do
begin
cn[i]:= cnpj[i];
end;
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;

v1:= inttostr(strtoint(v1)*5);
v2:= inttostr(strtoint(v2)*4);
v3:= inttostr(strtoint(v3)*3);
v4:= inttostr(strtoint(v4)*2);
v5:= inttostr(strtoint(v5)*9);
v6:= inttostr(strtoint(v6)*8);
v7:= inttostr(strtoint(v7)*7);
v8:= inttostr(strtoint(v8)*6);
v9:= inttostr(strtoint(v9)*5);
v10:= inttostr(strtoint(v10)*4);
v11:= inttostr(strtoint(v11)*3);
v12:= inttostr(strtoint(v12)*2);
soma:= 0;
divisao:= 0;
resto:=0;
soma:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12);
resto:= soma mod 11;
if (resto <2) then
begin
v40 := '0';
end;
if resto>=2 then
begin
divisao:= 11-resto;
v40:= inttostr(divisao);
end;
v1:= '';
v2:= '';
v3:= '';
v4:= '';
v5:= '';
v6:= '';
v7:= '';
v8:= '';
v9:= '';
v10:= '';
v11:= '';
v12:= '';
vv:= '';
for i:=1 to 1 do
begin
v1:= cn[i];
v2:= cn[i+1];
v3:= cn[i+2];
v4:= cn[i+3];
v5:= cn[i+4];
v6:= cn[i+5];
v7:= cn[i+6];
v8:= cn[i+7];
v9:= cn[i+8];
v10:= cn[i+9];
v11:= cn[i+10];
v12:= cn[i+11];
end;
v1:= inttostr(strtoint(v1)*6);
v2:= inttostr(strtoint(v2)*5);
v3:= inttostr(strtoint(v3)*4);
v4:= inttostr(strtoint(v4)*3);
v5:= inttostr(strtoint(v5)*2);
v6:= inttostr(strtoint(v6)*9);
v7:= inttostr(strtoint(v7)*8);
v8:= inttostr(strtoint(v8)*7);
v9:= inttostr(strtoint(v9)*6);
v10:= inttostr(strtoint(v10)*5);
v11:= inttostr(strtoint(v11)*4);
v12:= inttostr(strtoint(v12)*3);
vv:= inttostr(strtoint(v40)*2);
soma2:= 0;
divisao2:= 0;
resto2:=0;
soma2:= strtoint(v1)+strtoint(v2)+strtoint(v3)+strtoint(v4)+strtoint(v5)+strtoint(v6)+strtoint(v7)+strtoint(v8)+strtoint(v9)+strtoint(v10)+strtoint(v11)+strtoint(v12)+strtoint(vv);
resto2:= soma2 mod 11;
if (resto2 <2) then
begin
v41 := '0';
end;
if resto2>=2 then
begin
divisao2:= 11-resto2;
v41:= inttostr(divisao2);
end;
      numero:= '';
      for c:= 1 to 12 do
      begin
      numero:= numero + cnpj[c];
      end;

      if (digitocnpj = (v40+v41)) or ((v40+v41) = comparacaocnpj) then
      begin
      if numerocnpj <> numero+v40+v41 then
      begin
      listbox1.Items.Add(numero+v40+v41);
      numerocpf:= '';
      if ((v40+v41) = comparacaocnpj) then
      begin
      comparacaocnpj:= '';
      end;
      numerocnpj:= numero+v40+v41;
      end;
      end;
end;
end;
end;
end
else
begin
    if edit1.Text <> '' then
    begin
    listbox1.Items.Add(cpf);
    end;
    if edit5.Text <> '' then
    begin
      listbox1.Items.Add(cnpj);
    end;
end;

end;

procedure TValidador.ListBox1Click(Sender: TObject);
begin
edit7.Clear;
edit7.Text:= listbox1.Items.Strings[listbox1.ItemIndex];
edit7.SelectAll;
edit7.CopyToClipboard;
end;

procedure TValidador.ValidarCPF1Click(Sender: TObject);
begin
edit1.Clear;
edit5.Clear;
listbox1.Clear;
edit1.SetFocus;
end;

procedure TValidador.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (length(edit1.text)=11) and (key <> chr(2)) then
begin
edit1.SelectAll;
end;
end;

procedure TValidador.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if (length(edit5.text)=4) and (key <> chr(2)) then
begin
edit5.SelectAll;
end;
end;

end.
